
/**
 * 返回指定数据不重复的记录
 * @param arrays 
 */
export function unique(arrays:Array<any>):Array<any>{
    let result = new Array<any>();
    let hash = Object.create({});
    for(let irow = 0; irow < arrays.length; ++ irow){
        let elm = arrays[irow];
        if(!hash[elm]){
            result.push(elm);
            hash[elm] = true;
        }
    }
    return result;
}

export enum CONSTKEY{
    /**
     * 组件名称前缀
     */
    CompPrefix = 'ko-'
}

/**
 * 根据组件名称获取模板DOM
 * @param compName 
 */
export function getTemplate(compName:string):string{
    let defaultVaue = '<div></div>';
    let specialValue = {
        'linkbutton': '<a></a>',
        'layout': '<div style="height:100%" ><!-- ko template:{ nodes:$componentTemplateNodes,data:$context.$parent } --><!-- /ko --></div>',
        'dialog': '<div><!-- ko template:{ nodes:$componentTemplateNodes,data:$context.$parent } --><!-- /ko --></div>'
    };
    let val = specialValue[compName];
    if(!val){
        val = defaultVaue;
    }
    return val;
}

/**
 * 将arguments转换为数组
 */
export let convertArgToArray = Array.prototype.slice; 

/**
 * 组件类型
 */
export enum COMPTYPE{
    /**
     * easyui实例组件
     */
    easyui = 1,
    /**
     * easyui中的message，单独构建。因为他算是静态类
     */
    easyuimessage = 2,
    /**
     * 对easyui的dialog进行装饰成复数形式
     */
    easyuiDialogs = 4,

    /**
     * 普通组件类型
     */
    norm = 8
}